home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1996-11-16 | 4.0 KB | 155 lines |
- 10 'DECIFRAC - Decimal feet/inches to fractions 08 JAN 94 rev. 16 NOV 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 CLS:KEY OFF
- 40 COLOR 7,0,5
- 50 UL$=STRING$(80,205)
- 60 '
- 70 '....start
- 80 CLS
- 90 COLOR 15,1
- 100 PRINT " DECIMAL / FRACTION CONVERTER";TAB(61);"by George C. Murphy ";
- 110 COLOR 5,0:PRINT STRING$(80,223);
- 120 COLOR 7,0
- 130 D=0:E=0:F=0:I=0:N=0 'set variables to zero
- 140 D$="":E$="":F$="":I$="": 'set variables to zero
- 150 PRINT " Press number in < > to convert INCHES/FEET/METRES from:"
- 160 PRINT UL$;
- 170 PRINT " < 1 > FRACTION to DECIMAL"
- 180 PRINT " < 2 > DECIMAL to FRACTION"
- 190 PRINT UL$;
- 200 PRINT " or Press < 0 > to EXIT....."
- 210 Z$=INKEY$:IF Z$=""THEN 210
- 220 IF Z$="0"THEN RUN EX$
- 230 IF Z$="1"THEN 270
- 240 IF Z$="2"THEN 810
- 250 GOTO 210
- 260 '
- 270 '.....fraction to decimal
- 280 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 290 PRINT " FRACTION to DECIMAL"
- 300 PRINT UL$;
- 310 LOCATE 7
- 320 INPUT " ENTER: number of whole feet................................";F$
- 330 IF VAL(F$)<>INT(VAL(F$))THEN LOCATE CSRLIN-1:PRINT STRING$(79,32):GOTO 310
- 340 IF F$=""THEN F$="0"
- 350 LG=LEN(F$)
- 360 Q$=F$+"'- ":F=VAL(F$)
- 370 LOCATE 5,2:PRINT Q$
- 380 LOCATE 8
- 390 INPUT " ENTER: number of whole inches..............................";I$
- 400 IF VAL(I$)<>INT(VAL(I$))THEN LOCATE CSRLIN-1:PRINT STRING$(79,32):GOTO 380
- 410 IF I$=""THEN I$="0"
- 420 Q$=Q$+I$:I=VAL(I$)
- 430 LOCATE 5,2:PRINT Q$
- 440 LOCATE 9
- 450 INPUT " ENTER: fraction enumerator (top number of fraction)........";E$
- 460 IF VAL(E$)<>INT(VAL(E$))THEN LOCATE CSRLIN-1:PRINT STRING$(79,32):GOTO 440
- 470 IF VAL(E$)=0 THEN E=0:GOTO 490
- 480 Q$=Q$+" "+E$+"/":E=VAL(E$)
- 490 LOCATE 5,2:PRINT Q$
- 500 LOCATE 10
- 510 IF E=0 THEN 540
- 520 INPUT " ENTER: fraction denominator (bottom number of fraction)....";D$
- 530 IF VAL(D$)<>INT(VAL(D$))THEN LOCATE CSRLIN-1:PRINT STRING$(79,32):GOTO 500
- 540 Q$=Q$+D$+CHR$(34):D=VAL(D$)
- 550 LOCATE 5,2:PRINT Q$
- 560 VIEW PRINT 6 TO 24:CLS:VIEW PRINT:LOCATE 6
- 570 IF E=0 AND D=0 THEN IN=F*12+I:GOTO 590
- 580 IN=F*12+I+E/D
- 590 FT=IN/12
- 600 MR=IN*0.0254
- 610 U$=STRING$(LG+2,"#")+".###"
- 620 PRINT " = ";USING U$;FT;:PRINT " feet"
- 630 PRINT " = ";USING U$;IN;:PRINT " inches"
- 640 PRINT " = ";USING U$;MR;:PRINT " metres"
- 650 PRINT
- 660 PRINT " ( dimensions shown are rounded off to the nearest .001 )"
- 670 PRINT UL$;
- 680 PRINT " Do you want a hard copy printout? (y/n)"
- 690 Z$=INKEY$
- 700 IF Z$="n"THEN 790
- 710 IF Z$="y"THEN 730
- 720 GOTO 690
- 730 LN=CSRLIN-1:VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
- 740 LPRINT TAB(2)Q$;
- 750 LPRINT TAB(20)USING U$;FT;:LPRINT " feet"
- 760 LPRINT TAB(20)USING U$;IN;:LPRINT " inches"
- 770 LPRINT TAB(20)USING U$;MR;:LPRINT " metres"
- 780 LPRINT
- 790 GOTO 1520
- 800 '
- 810 '.....decimal to fraction
- 820 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 830 PRINT " Press number in < > to select unit of measurement of ";
- 840 PRINT "number to be converted:"
- 850 PRINT UL$;
- 860 PRINT " < 1 > Decimal INCHES"
- 870 PRINT " < 2 > Decimal FEET"
- 880 PRINT " < 3 > Decimal MILLIMETRES"
- 890 PRINT " < 4 > Decimal CENTIMETRES"
- 900 PRINT " < 5 > Decimal METRES"
- 910 PRINT UL$;
- 920 Z$=INKEY$:IF Z$=""THEN 920
- 930 IF Z$="1"THEN M$="inches":GOTO 1000
- 940 IF Z$="2"THEN M$="feet":GOTO 1000
- 950 IF Z$="3"THEN M$="mm":GOTO 1000
- 960 IF Z$="4"THEN M$="cm":GOTO 1000
- 970 IF Z$="5"THEN M$="metres":GOTO 1000
- 980 GOTO 920
- 990 '
- 1000 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 1010 PRINT " DECIMAL to FRACTION"
- 1020 PRINT UL$;
- 1030 PRINT" ENTER: dimension (in decimal ";M$;") to be converted........";
- 1040 INPUT N
- 1050 I=N 'inches
- 1060 IF M$="feet"THEN I=I*12 'feet
- 1070 IF M$="mm"THEN I=I/25.4 'millimetres
- 1080 IF M$="cm"THEN I=I*10/25.4 'centimetres
- 1090 IF M$="metres"THEN I=I*1000/25.4 'metres
- 1100 VIEW PRINT 5 TO 24:CLS:VIEW PRINT:LOCATE 5
- 1110 PRINT N;M$;" ="
- 1120 FT=0 'set feet to 0
- 1130 IF I>12 THEN FT=INT(I/12):I=I-FT*12
- 1140 IN=INT(I) 'whole inches
- 1150 FR=I-IN 'decimal part of inch
- 1160 '.....calculate fraction
- 1170 D=64 'denominator
- 1180 E=FR*D 'enumerator
- 1190 IF E=0 THEN D=0:GOTO 1240
- 1200 E=CINT(E/2):D=D/2
- 1210 IF E=0 THEN D=0:GOTO 1240
- 1220 IF E/2=INT(E/2)THEN 1200
- 1230 PRINT
- 1240 '.....print result
- 1250 IF E=1 AND D=1 THEN IN=IN+1:E=0:D=0
- 1260 IF IN=12 THEN FT=FT+1:IN=0
- 1270 IN$=STR$(IN)
- 1280 FT$=STR$(FT)
- 1290 E$=STR$(E)
- 1300 D$=STR$(D):D$=RIGHT$(D$,LEN(D$)-1)
- 1310 PRINT FT$;"'-";IN$;
- 1320 IF E=0 THEN 1340
- 1330 PRINT E$;"/";D$;
- 1340 PRINT CHR$(34);
- 1350 PRINT TAB(18);"(rounded off to the nearest 1/32";CHR$(34);")"
- 1360 PRINT UL$;
- 1370 PRINT " Do you want a hard copy printout? (y/n)"
- 1380 Z$=INKEY$
- 1390 IF Z$="n"THEN 1520
- 1400 IF Z$="y"THEN 1430
- 1410 GOTO 1380
- 1420 '
- 1430 '.....LPRINT data
- 1440 LN=CSRLIN-1:VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
- 1450 LPRINT TAB(2)N;M$;" =";
- 1460 LPRINT TAB(20)USING "#,###";VAL(FT$);:LPRINT "'-";IN$;
- 1470 IF E=0 THEN 1490
- 1480 LPRINT E$;"/";D$;
- 1490 LPRINT CHR$(34)
- 1500 GOTO 1520
- 1510 '
- 1520 '.....end
- 1530 GOTO 70
- 1540 END
-